#e
#Title[uX_v]
#Text[]
#Image[]
#BackGround[]
#BGM[]
#PlayLevel[Extra]
#ScriptVersion[2]
#Player[FREE]

script_enemy_main
{
let wt=400;
let pfcom=0;
let usebomb=0;

	//GoɈxs镔
	@Initialize
	{
	//   eϐ

	//   XyJ[hf[^
	SetLife(1000);
	SetScore(100000);
	SetDamageRate(30,  0);
	SetTimer(80);
	SetInvincibility(250);
	SetShotAutoDeleteClip(32,32,32,32);
	LoadGraphic("script\img\ExRumia.png");
	LoadUserShotData(GetCurrentScriptDirectory~"..\img\usershot.txt");
	CutIn(KOUMA,"uX_v",GetCurrentScriptDirectory~"..\img\cutin02.png",0,0,255,320);

	}
	//   ʒu܂ňړ
	SetMovePosition02(GetCenterX, GetClipMinY+80, 60);

	BG_Standard;
	AtackTask;
	MoveTask;
	ControlTask;
	//G̃Ct0ɂȂ܂ŁA̕1t[1s
	@MainLoop
	{
		yield;


		if(OnBomb==false){
			SetCollisionA(GetX, GetY, 32);
			SetCollisionB(GetX, GetY, 24);
			usebomb=0;
		}
		else{
			usebomb++;
		}
		if(usebomb==1){
			BombBarrier;
		}
	}
	
	//`惋[vB1t[1s
	@DrawLoop
	{
		SetGraphicRect(0,1,63,64);
		if(GetSpeedX<0){
			SetGraphicRect(128,1,191,64);
		}
		if(GetSpeedX>0){
			SetGraphicRect(192,1,255,64);
		}
		SetColor(255,255,255);
		SetAlpha(255);
		if(OnBomb==true){SetAlpha(96);}
		SetTexture("script\img\ExRumia.png");//摜͔q
		DrawGraphic(GetX(),GetY());//G̍WEx[~A`;
	}
		
	//GłuԂɈxs镔
	@Finalize
	{
		DeleteGraphic("script\img\ExRumia.png");
		DeleteGraphic(GetCurrentScriptDirectory ~"..img\back1.png");
		DeleteGraphic(GetCurrentScriptDirectory ~"..img\back2.png");
	}
	//XyJ[h̔wi
	//Ă悢
	@BackGround
	{
		BG_Simple;
	}

	task AtackTask{
		wait(120);
		let dir=135;
		let rot=-0.5;
		loop{
			while(pfcom==0){
				PerfectFreeze(rand(GetClipMinX+20,GetClipMaxX-20),GetClipMinY,rand(1.6,3),dir,1,WHITE04,20);
				dir+=rot;
				if(dir<45.1){rot=-rot;}
				if(dir>134.9){rot=-rot;}
				wait(1);
			}
			Explosion01(GetX,GetY,8,0.3,50);
			wait(50);
			loop(10){
				ascent(i in 0..5){
					CreateShot01(GetX,GetY,5,GetAngleToPlayer-40+i*20,BLUE01,20);
					CreateShot01(GetX,GetY,4,GetAngleToPlayer-40+i*20,BLUE01,20);
					CreateShot01(GetX,GetY,3,GetAngleToPlayer-40+i*20,BLUE01,20);
				}
				wait(10);
			}
			wait(80);
			Explosion01(GetX,GetY,8,0.3,50);
			wait(180);
		}
	}

	task PerfectFreeze(	//p[tFNgt[Y
		x,
		y,
		spd,
		dir,
		grfa,
		grfb,
		delay
	){
		let obj=Obj_Create(OBJ_SHOT);
		Obj_SetPosition(obj,x,y);
		Obj_SetSpeed(obj,spd);
		Obj_SetAngle(obj,dir);
		ObjShot_SetGraphic(obj,grfa);
		while(!Obj_BeDeleted(obj)){
			if(pfcom==1){
				CreateShotA(0,Obj_GetX(obj),Obj_GetY(obj),0);
				SetShotDataA(0,0,0,rand(0,540),0,0,0,grfb);
				SetShotDataA(0,230,NULL,NULL,0,0.01,2,NULL);
				FireShot(0);
				Obj_Delete(obj);
			}
			yield;
		}
	}

	task MoveTask{
		wait(120);
		while(true){
			SetMovePosition02(rand(GetCenterX+60,GetClipMaxX-120), rand(GetClipMinY+60,GetCenterY-120), 80);
			wait(180);
			SetMovePosition02(rand(GetCenterX-60,GetCenterX+60), rand(GetClipMinY+60,GetCenterY-120), 80);
			wait(180);
			SetMovePosition02(rand(GetClipMinX+120,GetCenterX-60), rand(GetClipMinY+60,GetCenterY-120), 80);
			wait(180);
			SetMovePosition02(rand(GetCenterX-60,GetCenterX+60), rand(GetClipMinY+60,GetCenterY-120), 80);
			wait(180);
		}
	}


	task ControlTask{
		wait(120);
		loop{
			wait(wt);
			pfcom=1;
			wait(410);
			pfcom=0;
		}
	}

	#include_function".\function.txt"
}

